import * as monaco from 'monaco-editor'

export const options: monaco.editor.IStandaloneEditorConstructionOptions = {
    acceptSuggestionOnCommitCharacter: false, // 使用提交字符接受建议 // 在提供者定义的字符上接受建议
    acceptSuggestionOnEnter: 'smart', // 按 Enter 接受建议 'on' | 'smart' | 'off'
    accessibilityPageSize: 0, // 辅助功能页面大小   屏幕阅读器可读取的行数
    accessibilitySupport: 'auto', //  配置编辑器的无障碍支持 'auto' | 'off' | 'on'
    ariaLabel: undefined, // 编辑器文本区域的无障碍标签
    ariaRequired: undefined, // 是否设置 aria-required 属性
    autoClosingBrackets: 'always', // 自动关闭括号 'always' | 'languageDefined' | 'beforeWhitespace' | 'never'
    autoClosingComments: 'always', //自动闭合注释的选项
    autoClosingDelete: 'always', //自动闭合删除的选项
    autoClosingOvertype: 'always', // 插入模式下自动关闭 自动闭合覆盖的选项 'always' | 'never' | 'auto'
    autoClosingQuotes: 'always', // 自动关闭引号 自动闭合引号的选项'always' | 'languageDefined' | 'beforeWhitespace' | 'never'
    autoIndent: 'advanced', // 控制编辑器在用户键入、粘贴、移动或缩进行时是否应自动调整缩进  控制自动缩进 'none' | 'keep' | 'brackets' | 'advanced'
    autoSurround: 'languageDefined', // 自动环绕选择 'languageDefined' | 'never'
    automaticLayout: true, // 自动调整布局 启用自动布局
    bracketPairColorization: undefined, // 启用括号对颜色化
    codeActionsOnSaveTimeout: 0, // 保存时运行代码操作的超时时间
    codeLens: true, // 代码透镜 是否启用代码镜头（Code Lens）
    codeLensFontFamily: '', // 代码透镜的字体系列
    codeLensFontSize: 12, // 代码透镜的字体大小
    colorDecorators: true, // 是否启用颜色装饰器  启用内联颜色装饰
    colorDecoratorsActivatedOn: 'clickAndHover', //触发颜色选择器的条件
    colorDecoratorsLimit: 2, // 内联颜色装饰的最大数量
    columnSelection: false, // 启用列选择
    comments: {
        ignoreEmptyLines: true, // 插入行注释时忽略空行。默认为真。
        insertSpace: true // 在行注释标记之后和块注释标记内插入一个空格。默认为真。
    }, // 注释配置
    contextmenu: false, // 启用自定义上下文菜单   上下文菜单
    copyWithSyntaxHighlighting: false, // 复制时保持语法高亮
    cursorBlinking: 'solid', // 光标的闪烁模式 'blink' | 'smooth' | 'phase' | 'expand' | 'solid'
    cursorSmoothCaretAnimation: 'off', //平滑光标动画
    cursorStyle: 'line', // 光标样式 'line' | 'block' | 'underline' | 'line-thin' | 'block-outline' | 'underline-thin'
    cursorSurroundingLines: 0, //光标环绕行数 当文字输入超过屏幕时 可以看见右侧滚动条中光标所处位置是在滚动条中间还是顶部还是底部 即光标环绕行数 环绕行数越大 光标在滚动条中位置越居中
    cursorSurroundingLinesStyle: 'all', // 光标环绕行的样式 控制何时强制执行
    cursorWidth: 2, // 光标宽度
    defaultColorDecorators: true, // 是否使用默认颜色装饰
    definitionLinkOpensInPeek: false, //  定义链接是否在预览窗口中打开
    disableLayerHinting: false, // 禁用编辑器层提示
    disableMonospaceOptimizations: false, // 禁用等宽字体优化
    domReadOnly: false, //输入文本框是否使用 DOM 的 readonly 属性
    dragAndDrop: false, // 拖放功能 允许通过拖放移动选择
    emptySelectionClipboard: false, // 空选择剪贴板
    experimentalInlineEdit: undefined, //实验性内联编辑选项
    experimentalWhitespaceRendering: undefined, // 实验性空白渲染
    extraEditorClassName: 'id', //添加到编辑器的类名
    fastScrollSensitivity: 0, // 快速滚动速度
    find: {
        autoFindInSelection: 'always',
        seedSearchStringFromSelection: 'selection'
    }, // 查找设置  控制查找小部件的行为
    fixedOverflowWidgets: false, //以 fixed 方式显示溢出小部件
    folding: true, // 代码折叠
    foldingHighlight: false, // 启用折叠区域高亮
    foldingImportsByDefault: false, // 默认折叠导入区域
    foldingMaximumRegions: 0, // 最大可折叠区域数
    foldingStrategy: 'indentation', // 折叠策略 选择折叠策略
    fontFamily: 'Consolas, "Courier New", monospace', // 字体系列
    fontLigatures: false, // 启用字体连字
    fontSize: 20, // 字体大小
    fontVariations: false, // 启用字体变体
    fontWeight: 'bold', // 字体粗细 'normal' | 'bold' | 'lighter' | 'bolder'
    formatOnPaste: false, // 粘贴时格式化  启用粘贴时格式
    formatOnType: false, // 输入时格式化 启用输入时格式化
    glyphMargin: true, // 字形边距 启用渲染图符边距  开启左侧符号区域
    gotoLocation: undefined, //跳转到位置选项
    hideCursorInOverviewRuler: false, //是否在概览尺子中隐藏光标
    hover: {
        enabled: true,
        delay: 1,
        sticky: false
    }, // 悬停信息 配置编辑器的悬浮提示
    inDiffEditor: false, // 是否在差异编辑器中使用
    inlayHints: {
        enabled: 'on',
        fontSize: 20
    }, // 控制内联提示的行为和渲染 
    inlineSuggest: undefined, //内联建议选项
    letterSpacing: 1, // 字母间距
    lightbulb: undefined, // 控制代码操作灯泡的行为
    lineDecorationsWidth: 4, // 行装饰的宽度
    lineHeight: 30,
    lineNumbers : 'on', // 行号显示模式  控制行号的显示方式
    lineNumbersMinChars: 3, // 行号最小字符数  控制行号的最小字符数
    linkedEditing: undefined, // 启用关联编辑
    links: true, // 点击链接功能 启用链接检测
    matchBrackets: 'always', // 匹配括号  启用匹配括号高亮
    matchOnWordStartOnly: undefined, // 是否允许单词中间匹配
    minimap: {
        enabled: false,
        renderCharacters: false,
        side: 'right',
        maxColumn: 1000
    }, // 控制最小地图的行为和渲染
    mouseStyle: 'default', // 鼠标样式 鼠标指针样式
    mouseWheelScrollSensitivity: 1, // 鼠标滚轮滚动灵敏度   鼠标滚轮滚动灵敏度
    mouseWheelZoom: true,   //使用鼠标滚轮结合 Ctrl 键缩放字体
    multiCursorLimit: 2,        //控制同时可以存在的最大文本光标数量
    multiCursorMergeOverlapping: undefined, // 合并重叠的选择
    multiCursorModifier: undefined, // 添加多个光标的修饰键
    multiCursorPaste: undefined, // 配置粘贴多个文本时的行为
    occurrencesHighlight: undefined, // 启用语义发生高亮
    overviewRulerBorder: false, // 概览标尺边框   是否绘制概览尺子边框 是否应围绕概览标尺绘制边框
    overviewRulerLanes: undefined, // 概览标尺车道数量 概览尺子应渲染的车道数
    padding: {
        top: 1,
        bottom: 1
    }, // 内边距 控制编辑器的边距
    parameterHints: {
        enabled: true
    }, // 参数提示选项
    peekWidgetDefaultFocus: undefined, // 默认聚焦预览窗口的小部件
    placeholder: undefined, // 编辑器为空时显示的占位符
    quickSuggestions: true, // 启用快速建议
    quickSuggestionsDelay: 0, //快速建议显示延迟
    readOnly: false, // 是否只读内容不可编辑
    readOnlyMessage: {
        value: '不可以修改哦',
        supportThemeIcons: true,
        supportHtml: true
    }, // 为只读时编辑提示词
    renderControlCharacters: false, // 渲染控制字符
    renderFinalNewline: undefined, //渲染文件末尾的新行
    renderLineHighlight: 'all', // 当前行高亮渲染方式  渲染当前行高亮
    renderLineHighlightOnlyWhenFocus: undefined, //  仅当编辑器聚焦时渲染当前行高亮
    renderValidationDecorations: 'editable', //验证装饰渲染 是否渲染验证装饰
    renderWhitespace: 'none', // 渲染空白字符
    revealHorizontalRightPadding: undefined, //水平方向显示光标时的虚拟填充水平右内边距揭示
    roundedSelection: undefined, //选择是否带有圆角选择区域是否有圆角
    rulers: undefined, // 编辑器中的竖直标尺 指定位置渲染垂直线
    screenReaderAnnounceInlineSuggestion: undefined, // 是否立即宣布内联建议内容
    scrollBeyondLastColumn: undefined, // 滚动超过最后一列的数量 启用滚动到最后列
    scrollBeyondLastLine: true, // 滚动超过最后一行 启用滚动到最后行
    scrollPredominantAxis: undefined, //  启用主要轴滚动
    scrollbar: {
        vertical: 'hidden',
        horizontal: 'auto',
        handleMouseWheel: undefined,
        useShadows: undefined,
        verticalHasArrows: undefined,
        horizontalHasArrows: undefined,
        arrowSize: undefined,
        alwaysConsumeMouseWheel: undefined
    }, // 滚动条设置// 控制滚动条的行为和渲染
    selectOnLineNumbers: true, ////单击行号时选择相应行
    selectionClipboard: undefined, // 启用 Linux 主剪贴板
    selectionHighlight: false, // 是否高亮显示其他位置的选择 // 启用选择高亮
    showDeprecated: undefined, // 控制废弃变量的高亮
    showFoldingControls: 'mouseover', // 折叠控制的显示方式  折叠控制何时显示
    showUnused: undefined, // 控制未使用变量的高亮
    smartSelect: undefined, //智能选择选项
    smoothScrolling: true, // 滚动动画 启用平滑滚动
    snippetSuggestions: 'inline', // 代码提示
    stickyScroll: undefined, //控制粘性滚动选项
    stickyTabStops: false, // 插入和删除空白时遵循制表符停止
    stopRenderingLineAfter: undefined, // 停止渲染行的位置停止渲染线后
    suggest: undefined, //建议选项
    suggestFontSize: 0, // 建议小部件的字体大小
    suggestLineHeight: 0, // 建议小部件的行高
    suggestOnTriggerCharacters: false, // 在触发字符上提供建议//  在触发字符上弹出建议框
    suggestSelection: 'first', // 建议的历史模式
    tabCompletion: 'onlySnippets', // Tab 完成 代码提示按tab完成 启用 Tab 完成
    tabIndex: undefined, // 编辑器文本区域的 tabindex 属性
    tabSize: 4,
    theme: 'vs-dark', // 编辑器主题 默认vs-dark VSCode 黑色主题,可选：vs、vs-dark、hc-black、hc-light
    unfoldOnClickAfterEndOfLine: undefined, // 单击折行后展开
    unusualLineTerminators: undefined, //移除不寻常的行终止符
    useTabStops: undefined, //  插入和删除空白时遵循制表符停止
    wordBasedSuggestions: undefined, // 基于单词的建议
    wordBreak: 'keepAll', //控制单词换行
    wordSegmenterLocales: undefined, // 用于词分割的语言
    wordSeparators: '', // 单词分隔符 词导航时使用的分隔符
    wordWrap: 'off', // 单词换行 控制自动换行
    wordWrapBreakAfterCharacters: undefined, // 换行后的字符
    wordWrapBreakBeforeCharacters: undefined, //换行前的字符 单词换行前的字符
    wordWrapColumn: undefined, //换行列数 单词换行的列数
    // wordWrapOverride1: undefined, // 单词换行覆盖1  覆盖 wordWrap 设置
    // wordWrapOverride2: undefined, // 单词换行覆盖2 覆盖 wordWrapOverride1 设置
    wrappingIndent: 'deepIndent', // 缩进包装 控制换行的缩进
    wrappingStrategy: undefined //控制换行策略
}
export const languageOption = ["c","c++","python","javascript","go","rust"]
export const themeOption = ["vs-dark","vs","hc-black","hc-light"]